package com.shuda.business.user.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shuda.business.user.entity.PermissionEntity;
import com.shuda.common.dto.PermissionDTO;
import com.shuda.common.vo.PermissionVO;

import java.util.List;

/**
 * 权限服务接口
 * @author ink
 * @Description: 权限业务逻辑层
 * @date 2024-10-10 14:30:00
 */
public interface PermissionService extends IService<PermissionEntity> {

    /**
     * 获取权限列表
     */
    IPage<PermissionEntity> getPermissionList(Integer pageNum, Integer pageSize, String permissionName, String permissionCode, Integer status);

    /**
     * 获取权限树
     */
    List<PermissionVO> getPermissionTree();

    /**
     * 获取权限详情
     */
    PermissionEntity getPermissionById(Long id);

    /**
     * 创建权限
     */
    Boolean createPermission(PermissionDTO permissionDTO);

    /**
     * 更新权限
     */
    Boolean updatePermission(Long id, PermissionDTO permissionDTO);

    /**
     * 删除权限
     */
    Boolean deletePermission(Long id);

    /**
     * 更新权限状态
     */
    Boolean updatePermissionStatus(Long id, Integer status);

    /**
     * 获取权限选项列表
     */
    List<PermissionVO> getPermissionOptions();
}